#define _CRT_SECURE_NO_WARNINGS 1
#include "list.h"


void test() {
	ListNode* pHead = ListCreateHead();
	ListInitHead(pHead);
	ListPrint(pHead);
	ListPushBack(pHead,1);
	ListPushBack(pHead, 2);
	ListPushBack(pHead, 3);
	ListPushBack(pHead, 4);
	ListPrint(pHead);
	ListPopBack(pHead);
	ListPrint(pHead);
	ListPopBack(pHead);
	ListPrint(pHead);
	ListPopBack(pHead);
	ListPrint(pHead);
	ListPopBack(pHead);
	ListPrint(pHead);
	/*ListPopBack(pHead);
	ListPrint(pHead);*/
}

void test2() {
	ListNode* pHead = ListCreateHead();
	ListInitHead(pHead);
	ListPrint(pHead);
	ListPushFront(pHead,5);
	ListPrint(pHead);
	ListPushFront(pHead, 4);
	ListPrint(pHead);
	ListPushFront(pHead, 3);
	ListPrint(pHead);
	ListPushFront(pHead, 2);
	ListPrint(pHead);
	ListPushFront(pHead, 1);
	ListPrint(pHead);
	ListPopFront(pHead);
	ListPrint(pHead);
	ListPopFront(pHead);
	ListPrint(pHead);
	ListPopFront(pHead);
	ListPrint(pHead);
	ListPopFront(pHead);
	ListPrint(pHead);
	ListPopFront(pHead);
	ListPrint(pHead);
	/*ListPopFront(pHead);
	ListPrint(pHead);*/

}

void test3() {
	ListNode* pHead = ListCreateHead();
	ListInitHead(pHead);
	ListPrint(pHead);
	ListPushFront(pHead, 5);
	ListPrint(pHead);
	ListPushFront(pHead, 4);
	ListPrint(pHead);
	ListPushFront(pHead, 3);
	ListPrint(pHead);
	ListPushFront(pHead, 2);
	ListPrint(pHead);
	ListPushFront(pHead, 1);
	ListPrint(pHead);
	ListNode* pos = ListFind(pHead, 3);
	ListInsert(pos, 30);
	ListPrint(pHead);
	pos = ListFind(pHead, 4);
	ListErase(pos);
	pos = NULL;
	ListPrint(pHead);
	ListDestory(pHead);
	pHead = NULL;
}

int main()
{
	test3();
	return 0;
}